﻿using System.Threading.Tasks;
using SelfService.Model.Models;
using WalkingTec.Mvvm.Core;

namespace SelfService.Model.Interface
{
    public interface IPaySystem
    {
        /// <summary>
        /// 获取二维码
        /// </summary>
        /// <param name="pay"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public Task<ResultDetail<IPay>> GetQrCode(SysPay pay, LoginUserInfo user);

        /// <summary>
        /// 扫码支付
        /// </summary>
        /// <param name="pay"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public Task<ResultDetail<IPay>> MicroPay(SysPay pay, LoginUserInfo user);

        /// <summary>
        /// 获取支付结果
        /// </summary>
        /// <param name="pay"></param>
        /// <returns></returns>
        public Task<ResultDetail<IPay>> GetPayResult(SysPay pay);
        
        /// <summary>
        /// 退款
        /// </summary>
        /// <param name="pay"></param>
        /// <returns></returns>
        public Task<ResultDetail<IPay>> Refund(SysPay pay);
        
        /// <summary>
        /// 检查退款
        /// </summary>
        /// <param name="pay"></param>
        /// <returns></returns>
        public Task<ResultDetail<IPay>> CheckRefund(SysPay pay);
    }
}
